package com.qingcheng.service.order;
import com.qingcheng.entity.PageResult;
import com.qingcheng.pojo.order.Order;
import com.qingcheng.pojo.order.OrderOrderItem;

import java.util.*;

/**
 * order业务逻辑层
 */
public interface OrderService {


    public List<Order> findAll();


    public PageResult<Order> findPage(int page, int size);


    public List<Order> findList(Map<String,Object> searchMap);


    public PageResult<Order> findPage(Map<String,Object> searchMap,int page, int size);


    public Order findById(String id);

    public Map<String,Object> add(Order order);


    public void update(Order order);


    public void delete(String id);

    /**
     * 修改订单状态
     *
     * 根据流水号修改订单状态
     * @param orderId
     * @param transactionId
     */
    void updatePayStatus(String orderId,String transactionId);

    /**
     * 查询订单和该订单的订单详情
     *
     * @param orderId
     * @return
     */
    OrderOrderItem findOrderAndOrderItems(String orderId);

    /***
     * 批量发货
     * @param orderList
     */
    void batchSend(List<Order> orderList);

    /***
     * 超时订单处理
     */
    void orderTimeOutLogic();

    /***
     * 合并订单
     * @param orderId1
     * @param orderId2
     */
    void combineOrders(String orderId1, String orderId2);

    /***
     * 拆分订单
     * @param splitList
     * @param orderId
     */
    void splitOrder(String orderId, List<Map<Integer, Integer>> splitList);

}
